<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html>
<head>
<title>Einführung in PyQt4</title>
<link rel="stylesheet" href="../format.css" type="text/css">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="keywords" content="PyQt, PyQt4, Einführung, tutorial, Python, Linux">
<meta nam="description" content="Einführung in PyQt4">
<meta name="language" content="de">
<meta name="author" content="Jan Bodnar">
<meta name="distribution" content="global">
<meta name="translation" content="manuel stein">
</head>

<body>

<div class="content">


<a href="/" title="Home">Home</a>&nbsp;
<a href=".." title="Home">Contents</a>


<h1>Einführung in PyQt4</h1>

<h3>Über dieses Tutorial</h3>

<p>
Dies ist ein Einführungstutorial in die PyQt4-Bibliothek. 
Es soll Sie in die Lage versetzen, erste Schritte it dem 
PyQt4-Toolkit zu machen. Das Tutorial wurd unter GNU/Linux 
erstellt und getestet.
</p>


<h3>Über PyQt4</h3>

<p>
PyQt ist ein Toolkit zur Erstellung von Anwendungen mit grafischer Oberfläche 
(<acronym> lang="en" title="Graphical User Interface">GUI</acronym>). 
Es ist die Verbindung der Python Programmiersprache und die erfolgreiche Qt-Bibliothek, 
eine der einflussreichsten Bibliotheken der Welt. Wenn nicht <em>die</em> einflussreichste. 
Die offizielle Homepage von PyQt finden Sie unter
<a href="http://www.riverbankcomputing.co.uk/pyqt">www.riverbankcomputing.co.uk</a>.
Entwickelt wurde sie von <strong>Phil Thompson</strong>. 
</p>

<p>
PyQt wurde als eine Reihe von Python-Modulen umgesetzt. Es enthält über 300 Klassen und beinahe 6000 Funktionen und Methoden. Es steht auf diversen Plattformen zur Verfügung und läuft auf allen bedeutenden Betriebssystemen <abbr title="inklusive">inkl.</abbr> Unixoide wie Linux, Windows und Mac.
PyQt wurde dual lizenziert: Entwickler können zwischen der GPL und einer kommerziellen Lizenz wählen. Anfangs war die GPL-Version ausschließlich unter Unixoiden verfügbar, seit Version 4 gibt es sie für alle unterstützten Plattformen.
</p>

<p>
Wegen der großen Zahl verfügbarer Klassen wurden diese auf verschiedene Module aufgeteilt.
</p>

<img src="../images/modules.jpg">
<p class="figure">Figure: PyQt4 Modules</p>

<p>
Die <strong>QtCore</strong>-Module enthalten die wesentliche nicht-grafische Funktionalität. Das Modul dient der Verarbeitung von Zeitangaben, Dateien und Verzeichnissen, verschiedenen Datentypen, Streams, URLs, mime-Typen, Threads oder Prozessen. Das <strong>QtGui</strong>-Modul enthält die grafischen Komponenten und damit verbundene Klassen, welche zum Beispiel Knöpfe, Fenster, Statusleisten, Werkzeugleisten, Schieberegler, Bitmaps, Farben, Schriften <acronym title="und so weiter">usw.</acronym> enthalten. Das <strong>Qt-Network-</strong>-Modul enthält die Klassen für die Netzwerk-Programmierung. Sie erlauben das Schreiben von TCP/IP- und UDP-Clients und -Servern. So wird Netzwerkprogrammierung einfacher und leichter portierbar. Das <strong>QtXml</strong>-Modul enthält Klassen zur Verarbeitung von XML-Dateien und bietet Implementierungen von sowohl SAX als auch DOM APIs.
Das <strong>QtSvg</strong>-Modul bringt Klassen zur Darstellung von <acronym title="Scalable Vector Graphics">SVG</acronym>. <em>Skalierbare Vektorgrafiken</em> sind eine Sprache zur Beschreibung zweidimensionaler Grafiken und grafischer Anwendungen in XML.
Das <strong>QtOpengl</strong>-Modul wird zum Rendern von 3D- und 2D-Grafiken unter Verwendung der OpenGL-Bibliothek verwendet. Das Modul verbindet die QtGui-Bibliothek nahtlos mit der OpenGL-Bibliothek. Das <strong>QtSql</strong>-Modul schließlich beinhaltet Klassen für die Arbeit mit Datenbanken.
</p>

<h3>Python</h3>

<p>
<img src="../images/pythonlogo.png">
Python ist eine erfolgreiche Skriptsprache.  Ursprünglich entwickelt von <strong>Guido van Rossum</strong> wurde Python erstmalig 1991 veröffentlicht. Dabei wurde van Rossum von den Programmiersprachen ABC und Haskell inspiriert. Python ist eine Allzweck-, Multiplattform- und Interpretersprache. Manche ziehen es vor, es eine dynamische Sprache zu nennen. Python ist eine minimalistische, leicht zu lernende Sprache, deren sichtbarste Eigenschaft das Fehlen der Semikolons und Klammern ist. Statt dessen verwendet Python Zeileneinrückung. Die aktuell meist verwendeten Versionen von Python sind 2.5 und 2.6. Die 2008 herausgegebene Version 3000 ist nicht abwärtskompatibel, sodass alle davor entwickelten Anwendungen und Bibliotheken angepasst werden müssen, weswegen noch einige Jahren vergehen werden, bis Python 3(000)  zum allgemeinen Standard der Entwickler werden wird.
Heute wird Python von einer großen Gemeinde von Freiwilligen gepflegt und weiterentwickelt.
</p>

Der <a href="http://www.tiobe.com/tpci.htm">TIOBE</a>  Programming Community Index gibt uns eine Ahnung von der theoretischen Bedeutung verschiedener Programmiersprachen. An der Spitze steht hier Java, während C++ vom Thron gestoßen wurde. Allerdings wird C++ seine Bedeutung in seinen Stammgebieten über die nächsten Jahrzehnte hinweg bereichen und scheint keiner ernsten Bedrohung ausgesetzt zu sein. Tatsächlich ist eine deutliche Spezialisierung unter den Programmiersprachen zu erkennen. Java kommt vorwiegend bei Projekten in Unternehmen und bei portablen Geräten zum Einsatz, C ist führend beim Programmieren auf Systemebene (Betriebssystem, Treiber, Mini-Anwendungen), PHP gibt bei den kleinen bis mittleren Webprojekten den Ton an, während Javascript diese Rolle auf der Client-Seite der Webanwendungen inne hat.</p>
<table>
<tbody>
<tr>
<th>Position</th>
<th>Language</th>
<th>Ratings</th>
</tr>
<tr>
<td>1</td><td>Java</td><td>21.7%</td>

</tr>
<tr>
<td class="gray">2</td><td class="gray">C</td><td class="gray">14.9%</td>

</tr>
<tr>
<td>3</td><td>Visual Basic</td><td>10.7%</td>
</tr>
<tr>
<td class="gray">4</td><td class="gray">PHP</td><td class="gray">10.2%</td>

</tr>
<tr>
<td>5</td><td>C++</td><td>9.9%</td>

</tr>
<tr>
<td class="gray">6</td><td class="gray">Perl</td><td class="gray">5.4%</td>
</tr>
<tr>
<td>7</td><td>C#</td><td>3.4%</td>

</tr>
<tr>
<td class="gray">8</td><td class="gray">Python</td><td class="gray">3.0%</td>

</tr>
<tr>
<td>9</td><td>JavaScript</td><td>2.7%</td>
</tr>
<tr>
<td class="gray">10</td><td class="gray">Ruby</td><td class="gray">2.0%</td>

</tr>
</tbody>
</table>

<p>
Python steht aktuell auf Rang 8. Auch Ruby hat es mittlerweile in die Spitzenliste geschafft 
und ist somit gemeinsam mit Perl einer der engsten Konkurrenten von Python.
</p>

<h3>Python Oberflächen-Toolkits</h3>

<p>Zur Erstellung von grafischen Benutzeroberflächen können Python-Entwickler 
zwischen drei recht annehmbaren Optionen auswählen: PyGTK, wxPython und PyQt. 
Worauf die Wahl fällt, hängt von den jeweiligen Begleitumständen ab. Eine in 
Python integrierte weitere Option ist TkInter, von deren Verwendung jedoch 
abzuraten ist.
</p>

<div class="footer">
<div class="signature">
<a href="/">ZetCode</a> last modified September 11, 2007  <span class="copyright">&copy; 2007 - 2011 Jan Bodnar</span>
<span class="copyright">Translation © 2009 Manuel Stein</span>
</div>
</div>

</div>
</body>
</html>

